package study.JavaBase;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * date:2025.10.13
 * title:java方法
 * author:fzy
 */
public class Java_13 {
    public static void main(String[] arg) {
        int a = 0;
        int b = 12;
        double c = 10.123123d;
        double e = 12.2323445d;
        int maxInt = TwoNumberToTest.twoNumberMax(a, b);
        double maxDouble = TwoNumberToTest.twoNumberMax(c, e);
        CreateClass createClass = new CreateClass(1);
        CreateClass createClass1 = new CreateClass(1.000d);
        int maxArrayInt = Param.paramTest(1,2,3,54,5,6,6,8,9,0,12);
        double maxArrayDouble = Param.paramTest(10d,290d,30d,1d,23.123d,12312321.23d);
        System.out.println("the max int = "+maxArrayInt);
        System.out.println("the max double = "+maxArrayDouble);
    }
}

//略
//方法的重载
//同一个方法有两个名字但是参数不一样，java编译器会按照参数进行判断使用那个函数
class TwoNumberToTest {
    static int twoNumberMax(int a, int b) {
        return Math.max(a, b);
    }

    static double twoNumberMax(double a, double b) {
        return Math.max(a, b);
    }
    //变量作用域:略

}

//构造函数
//创建类的特殊方法，使用new时会调用
//名字和类相同，没有返回指，可以重载，在创建方法的时候自动调用
class CreateClass {
    double testA;
    int testV;

    CreateClass(double a) {
        testA = a;
    }

    CreateClass(int a) {
        testV = a;
    }
}

//可变参数
//在方法声明中加一个...，一个方法只能指定一个可变参数，他必须是最后一个参数
class Param {
    static int paramTest(int... number) {
        if (number.length == 0) {
            System.out.println("没有参数");
            return 0;
        } else {
            int temp = number[0];
            for (int c : number) {
                if (c > temp) {
                    temp = c;
                }
            }
            return temp;
        }
    }
    static double paramTest(double... number){
        if(number.length ==0){
            System.out.println("没有参数");
            return 0d;
        }else {
            double temp = number[0];
            for(double c:number){
                if(c>temp){
                    temp = c;
                }
            }
            return temp;
        }
    }
    static void ListTest(){
        List<String> a1 = Arrays.asList("ddd","ccc");

//        a1.add("123");
//        a1.remove("ddd");
        //Array.asList():不支持增删，支持修改
        //List.of():不支持增删改
        //set.of():不支持增删，没有修改方法
    }
}


//finalize后面再说